﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIMCObjetoNegocio;
using SIMCRepositorio;

namespace SIMCReglasNegocio
{
    public abstract class PortafolioUsuarioState : IPortafolioUsuarioState
    {
        protected IRepositorioPortafolioUsuario m_PortafolioRepository;
        protected PortafolioDeUsuario m_PortafolioUsuario;

        public PortafolioUsuarioState(IRepositorioPortafolioUsuario p_PortafolioRepository, 
            PortafolioDeUsuario p_PortafolioUsuario)
        {
            m_PortafolioRepository = p_PortafolioRepository;
            m_PortafolioUsuario = p_PortafolioUsuario;
        }

        public virtual void Solicitar()
        {
            throw new ArgumentException("No se puede pasar a este estado");
        }

        public virtual void Aprobar()
        {
            throw new ArgumentException("No se puede pasar a este estado");
        }

        public virtual void Rechazar()
        {
            throw new ArgumentException("No se puede pasar a este estado");            
        }

        public virtual void Inactivar()
        {
            throw new ArgumentException("No se puede pasar a este estado");            
        }

        public virtual void Renovar()
        {
            throw new ArgumentException("No se puede pasar a este estado");            
        }
    }
}
